Link to this headingCheating
Link to this headingFinding Player Entity addresses
- Find a Player variable (health, armor, ammo, etc.)
- Look at what reads from it and what writes to it.
- Check the Offset that is used in the ASM
- Check what the register is when before the offset is applied. This is the player Entity address.
Defining a Player Entity components:
- Open Memory Viewer
- Click Tools -> Dissect Data Structures
- Paste the address
- Click Structures -> Add New Structures
- Set to auto and Click OK.
Getting a Static Offset:
- Do a new scan. Click hex and put in the player entity address.
- Green Addresses are fixed address
Link to this headingPointer Maps
Pointer Scans with Code Addresses:
- Find address
- Right Click and Generate Pointer Map
- Right Click and Find what access this address
- Click Add to the Code List
- Restart the game. and Click Advance Options button on the main window
- Right click on the address you want and choose Find out what address this code write to
- If there are more than one option then click sort by value
- Generate a Pointer map for the new Address
- Click Pointer Scan for this address: On the first address that was found.
- In the option window Enable Use saved pointermap
- Select the first pointer map scan. The one that matches the address that was used before the game restart.
- Select Compare results with other saved pointermaps(s) choose the new pointer map you just made.
- Narrow down the search with Pointer Scanner -> Rescan Memory. Choose the newest address with the offset that you can find from the Advance Options code section in there Must end with offsets option.
Pointer Scans with Scans:
3. Find the Element offset using the Find what writes to this trick.
4. Right Click and Pointer scan for this address
5. Click the checkbox for Use Saved Pointer map
6. Click the checkbox for Pointers must end with specific offsets.
7. Redefine results with the executable as the base address with
8. Pointer Scanner -> Rescan Memory. Set to Value to Find with health value.
9. Set Base pointer must be in range getAddress('test.exe') and getAddress('test.exe') + getModuleSize('test.exe')
Narrow Scan Results:
- Close Game and reopen Game and pointer scan.
- Pointer Scanner -> Rescan Memory. Set to Value to Find with health value.
Link to this headingAdvanced Pointer maps
- Save the first address from the initial pointer map
- Find new health address and make a new pointer map
- Right click the new address and Pointer scan for this address
- Click the checkbox for Use Saved Pointer map and use the second pointer map
- Click the checkbox for Compare results with other saved pointermap and choose the original pointer map
- Set the address to the previous Health pointer
Link to this headingFinding the View Matrix
Link to this headingFor Degrees
- Look all the way straight down. Do a float search for in between -88 and -90.
- Look all the way straight up. Do a float search for in between 88 and 90.
Link to this headingFor Radians
- Look all the way straight down. Do a float search for in between -0.9 and -1.0.
- Look all the way straight up. Do a float search for in between 0.9 and 1.0.
Link to this headingMaking Lua scripts
- Find offset for the command you want to replace
- Open it up in memory viewer
- Click Tools -> Auto Assemble.
- Click Template -> Cheat table framework code
- Click Template -> Code Injection
- Use File -> Assign to current cheat table
Find a Code address:
// Use the first byte in the opcode and set the rest to **
// Try to ignore the Memory address as they can change on updates
aobscanmodule
registersymbol
//Save Memory for Disable
alloc
storeBytes:
Link to this headingFinding variables to distinguish different entities
Filtering code types by values:
- Right click on the Code address and select Find out what address this instruction accesses
- Do operations that access that code.
- Take note of the addresses and do that with other operations you want to filter out.
- Select the addresses you want to use. Right Click and select Find Commonalities between addresses -> Selection as group 1
- Select the addresses you want to filter out. Right Click and select Find Commonalities between addresses -> Selection as group 2
- Right Click and select Find Commonalities between addresses -> Scan for Commonalities
- Find the Registers or Data structures in the pointers.
Link to this headingUsing Values on the address list in a script
- Register the Symbol in the script using
registersymbol() - Click Add Address Manually and use the symbol name
- Click and drag the new memory address under the script line
- Right Click and select Group Config -> Hide children when deactivated
- (Optional) Make a drop down menu
- Right click and select Set/Change dropdown selection options
- make a list with the value:description
- Enable the Only Show the description part
- Enable the Make the record display values like the dropdown list
registersymbol //Remember to dealloc